The field of computer graphics concerns the creation, storage, manipulation and display of pictures and models of objects by a digital processor. Interactive computer graphics is the subclass of computer graphics in which a user dynamically controls the picture's content, format, size or color on a display surface by means of an interaction device such as a keyboard, lever, joystick, mouse or light pen. The creation of synthetic images (i.e., images which exist as abstract collections of lines, usual domain of interactive computer graphics. This is in contrast to the creation of images of real objects, which come directly or indirectly from a scanning device of some sort, e.g., a film scanner, TV scanner, ultrasound scanner, etc.
There are two primary classes of interactive computer graphics systems: random-scan and raster-scan systems. Images displayed by a random-scan system are encoded as commands to draw each output primitive (i.e., point, line or polygon) by plotting individual points or drawing connecting lines between specified starting and ending coordinates of line segments. Polygons are simply treated as a closed series of line segments. Encoding for a raster-scan system is much simpler: output primitives are broken up into their constituent points for display. The major difference between a simple point-plotting random-scan system and a raster-scan system is in the organization of the stored data used to drive the display. (As explained below, the data is stored in a frame buffer or refresh buffer.) In the random-scan display system, the component points of each successive output primitive are stored sequentially in memory and are plotted in that order, one point at a time. This is because the beam may be moved randomly on the screen. In the raster-scan display system, the refresh memory is arranged as a 2-dimensional array of data. The entry or value stored at a particular row and column encodes an intensity and/or color value of a corresponding display element on the screen. By convention, the location of each display element is specified by a unique (X,Y) coordinate.
Since each memory location defines a single point-sized element of an image, both the display screen location and its corresponding memory location are often called a "pixel," short for the image processing term "picture element." Hereinafter, to avoid confusion, the term "display pixel" is used to indicate picture elements of a display device, and "storage pixel" to indicate memory locations corresponding to the display pixels.
FIG. 1 is a simplified block diagram of a typical raster-scan graphic system. Such a system includes an image creation system 12, an image storage system 14 (such as a refresh buffer or frame buffer), an image display system 16, a raster display 18 and an interaction device 20. The image creation system 12 converts output primitives into the data stored in the refresh buffer or frame buffer of the image storage system 14. See Fundamentals of Interactive Computer Graphics, by J. D. Foley and A. Van Dam, ISBN: 0-201-14468-9.
Image display system 16 cycles through frame buffer 14 row by row (i.e., scan line by scan line), typically 30 or 60 times per second, and ouputs video signals to raster display 18 for controlling the CRT beam's deflection and intensity. The data stored in the frame buffer is used to control the beam's intensity, while the beam's deflection is controlled by horizontal and vertical sync signals generated within image display system 16. At the start of a refresh cycle, or "frame", an X address register in image display system 16 is set to zero and a Y address register is set to a number N-1 corresponding to the top scan line. As the first scan line is processed, the X address is incremented up through the number of pixels per scan line. Each pixel value is read from the frame buffer and used to control the intensity of the CRT beam. After the first scan line is processed, the X address is reset to zero and the Y address is decremented by one. The process is continued until the last scan line (corresponding to Y=0) is processed.
The user of a graphics system interacts with the application program through an interaction device 20, such as, e.g., a light pen. Light pens are pixel-indicating or "picking" devices; i.e., they are used to select one or more optional input commands made available and displayed by the application program. The light pen detects light emitted from a particular display pixel during the short period the CRT beam is actually exciting that pixel. It is not sensitive to the more prolonged phosphorescence or to ambient room light. The application program may be designed to halt the raster-scan or otherwise alter its which the beam was detected. See Fundamentals of Interactive Computer Graphics, pp. 128-129, 192-194, referenced above.
A disadvantage of the heretofore known light pen systems is that they are highly dependent upon the specific graphics system in which they are employed. For example, a dedicated circuit typically must be provided within the image display system to trap the frame buffer address at which the beam is detected. In addition, the link between the pen and the graphics system is typically a cable connecting the pen directly to the image display system. This creates an unwieldy situation as the user is forced to drag the cable around his or her work area, often interfering with other devices, papers, beverages, etc., in the area.